home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1995 October / Amiga-CD 1995 #10.iso / weitere_demos / artikelfinder / install-afinder < prev    next >
Text File  |  1995-08-21  |  13KB  |  456 lines

  1. ;
  2. ; $VER: InstallAFinder 1.3 (25.01.94)
  3. ; script to install ARTIKELFinder
  4.  
  5.  
  6. (set AFinder_dest "dh0:Artikel-Finder")
  7. (set @default-dest "")
  8.  
  9. (set p_pfad   "ARTIKELFinder")
  10. (set pd_pfad "ARTIKELFinder_PD")
  11. (set pddisk (cat pd_pfad ":"))
  12. (set p_name  "ARTIKEL-Finder")
  13. (set pd_name  "ARTIKEL-Finder_PD")
  14.  
  15. (set spfad0 "ARTIKELFinder_A")
  16. (set spfad1 "ARTIKELFinder_D")
  17. (set spfad2 "ARTIKELFinder_P")
  18. (set spfad3 "ARTIKELFinder_S")
  19. (set spfad4 "ARTIKELFinder_X")
  20. (set spfad5 "ARTIKELFinder_K")
  21.  
  22. (set dbsnum 7)
  23.  
  24. (set dname0 "Amiga")
  25. (set dname1 "AmigaDOS")
  26. (set dname2 "AmigaPlus")
  27. (set dname3 "AmigaSpecial")
  28. (set dname4 "AmigaExtra")
  29. (set dname5 "Kickstart")
  30. (set dname6 "Artikel")
  31.  
  32. (set ndisk0 2)
  33. (set ndisk1 1)
  34. (set ndisk2 1)
  35. (set ndisk3 1)
  36. (set ndisk4 1)
  37. (set ndisk5 1)
  38. (set ndisk6 1)
  39.  
  40. (set runpd 0)
  41.  
  42. (set overwrite-help "Wenn Sie diesen Requester mit 'Ja' beantworten, wird ein eventuell schon vorhandener Datenbestand überschrieben!")
  43.  
  44. (set olduser @user-level)
  45.  
  46. (procedure copyMain
  47.    (set ppart_1 "Hauptprogramm")
  48.    (set ppart_2 "Hauptprogramms")
  49.    (chooseDir)
  50.  
  51.    (if (exists pddisk (noreq))
  52.       (
  53.          (set runpd 1)
  54.          (set prog_pfad pd_pfad)
  55.          (set prog_name pd_name)
  56.       )
  57.       (
  58.          (set prog_pfad p_pfad)
  59.          (set prog_name p_name)
  60.       )
  61.    )
  62.  
  63.    (set source_disk prog_pfad)
  64.    (getDisk)
  65.  
  66.    (set file (cat prog_pfad ":"))
  67.    (set file (tackon file prog_name))
  68.  
  69.    (set dfile (tackon @default-dest prog_name))
  70.    (if (= (exists dfile) 1)
  71.       (
  72.             
  73.          (set ver_source (getversion file))
  74.          (set ver_s (/ ver_source 65536))
  75.          (set rev_s (- ver_source (* ver_s 65536)))
  76.             
  77.          (set ver_dest (getversion dfile))
  78.          (set ver_d (/ ver_dest 65536))
  79.          (set rev_d (- ver_dest (* ver_d 65536)))
  80.  
  81.          (if (= ver_source ver_dest)
  82.             (
  83.                (set docopy
  84.                   (askbool
  85.                      (prompt  "Die Version "ver_s"."rev_s" des Programmes \""
  86.                               prog_name"\" ist vermutlich schon komplett in dem "
  87.                               "angegebenen Zielverzeichnis installiert.\n"
  88.                               "Wollen sie das Hauptprogramm erneut "
  89.                               "installieren?")
  90.                      (help    "Wenn Sie diesen Requester mit 'Ja' "
  91.                               "beantworten, wird eine eventuell schon "
  92.                               "vorhandene Version überschrieben!")
  93.                      (choices "Ja" "Nein")
  94.                   )
  95.                )
  96.                (if (= @user-level 0) (set docopy 1))
  97.             )
  98.          )
  99.          (if (< ver_source ver_dest)
  100.             (
  101.                (set docopy
  102.                   (askbool
  103.                      (prompt  "ACHTUNG! In dem angegebenen Zielverzeichnis "
  104.                               "befindet sich bereits die Version "
  105.                               ver_d"."rev_d" des Programmes \""prog_name"\".\n"
  106.                               "Wollen sie das Hauptprogramm mit der Version "
  107.                               ver_s"."rev_s" erneut installieren?")
  108.                      (help    "Wenn Sie diesen Requester mit 'Ja' "
  109.                               "beantworten, wird eine eventuell schon "
  110.                               "vorhandene neuere Version überschrieben!")
  111.                      (choices "Ja" "Nein")
  112.                   )
  113.                )
  114.                (if (= @user-level 0) (set docopy 0))
  115.             )
  116.          )
  117.          (if (> ver_source ver_dest)
  118.             (
  119.                (set docopy
  120.                   (askbool
  121.                      (prompt  "In dem angegebenen Zielverzeichnis "
  122.                               "befindet sich die Version "
  123.                               ver_d"."rev_d" des Programmes \""prog_name"\".\n"
  124.                               "Wollen sie das Hauptprogramm mit der Version "
  125.                               ver_s"."rev_s" installieren?")
  126.                      (help    "Wenn Sie diesen Requester mit 'Ja' "
  127.                               "beantworten, wird eine eventuell schon "
  128.                               "vorhandene ältere Version überschrieben!")
  129.                      (choices "Ja" "Nein")
  130.                   )
  131.                )
  132.                (if (= @user-level 0) (set docopy 1))
  133.             )
  134.          )
  135.       )
  136.  
  137.       (
  138.          (set docopy 1)
  139.       )
  140.    )
  141.  
  142.    (if (= docopy 1)
  143.       (
  144.          (set pcount 3)
  145.          (set acount 0)
  146.          (complete (/ (* (/ 10000 (+ pcount dbscount)) acount) 100) )
  147.          (copyfiles
  148.             (source  file)
  149.             (dest    AFinder_dest)
  150.             (infos)
  151.          )
  152.          (set acount 2)
  153.          (complete (/ (* (/ 10000 (+ pcount dbscount)) acount) 100) )
  154.          (if runpd
  155.             (
  156.                (set file (cat prog_pfad ":"))
  157.                (set file (tackon file p_name))
  158.             )
  159.          )
  160.          (set file (cat file ".img"))
  161.          (copyfiles
  162.             (source  file)
  163.             (dest    AFinder_dest)
  164.          )
  165.          (if (<> dbscount 0)
  166.             (
  167.                (set acount 3)
  168.                (complete (/ (* (/ 10000 (+ pcount dbscount)) acount) 100) )
  169.             )
  170.             (complete 100)
  171.          )
  172.       )
  173.    )
  174. )
  175.  
  176. (procedure copyDBS
  177.    (set ppart_1 "Datenbestände")
  178.    (set ppart_2 "Datenbestandes")
  179.  
  180.    (chooseDir)
  181.  
  182.    (set a 0)
  183.    (set b 0)
  184.  
  185.    (while (< a dbscount)
  186.  
  187.       (complete (/ (* (/ 10000 (+ dbscount pcount)) (+ a acount)) 100) )
  188.  
  189.       (until (BITAND 1 (shiftright answer2 b)) (set b (+ b 1)) )
  190.       (set dbs b) 
  191.       ( if ( = runpd 0 ) (set dbs (+ dbs 1)) )
  192.  
  193.       (select dbs
  194.          (
  195.             (set spfad pd_pfad)
  196.             (set fname dname6)
  197.             (set ndisk ndisk6)
  198.          )
  199.          (
  200.             (set spfad spfad0)
  201.             (set fname dname0)
  202.             (set ndisk ndisk0)
  203.          )
  204.          (
  205.             (set spfad spfad1)
  206.             (set fname dname1)
  207.             (set ndisk ndisk1)
  208.          )
  209.          (
  210.             (set spfad spfad2)
  211.             (set fname dname2)
  212.             (set ndisk ndisk2)
  213.          )
  214.          (
  215.             (set spfad spfad3)
  216.             (set fname dname3)
  217.             (set ndisk ndisk3)
  218.          )
  219.          (
  220.             (set spfad spfad4)
  221.             (set fname dname4)
  222.             (set ndisk ndisk4)
  223.          )
  224.          (
  225.             (set spfad spfad5)
  226.             (set fname dname5)
  227.             (set ndisk ndisk5)
  228.          )
  229.       )
  230.  
  231.       (set c 0)
  232.          
  233.       (while (< c ndisk)
  234.          (set ofile spfad)
  235.          (if (> ndisk 1) (set ofile (cat ofile (+ c 1))) )
  236.          (set file ofile)
  237.          (set file (cat file ":"))
  238.  
  239.          (set source_disk ofile)
  240.          (getDisk)
  241.  
  242.          (set dname fname)
  243.          (set dfile (tackon @default-dest dname))
  244.          (if (= (exists dfile) 1)
  245.             (
  246.                (set sfile (tackon file dname))
  247.                   
  248.                (set check_s (getsize sfile))
  249.                (set check_d (getsize dfile))
  250.                   
  251.                (if (= check_s check_d)
  252.                   (
  253.                      (set docopy
  254.                         (askbool
  255.                            (prompt  "Der Datenbestand \""dname"\" ist "
  256.                               "vermutlich schon komplett in dem angegebenen "
  257.                               "Zielverzeichnis installiert.\nWollen sie "
  258.                               "den Datenbestand erneut installieren?")
  259.                            (help    overwrite-help)
  260.                            (choices "Ja" "Nein")
  261.                         )
  262.                      )
  263.                      (if (= @user-level 0) (set docopy 1))
  264.  
  265.                   )
  266.                         
  267.                   (
  268.                      (if (earlier sfile dfile)
  269.                         (
  270.                            (set docopy
  271.                              (askbool
  272.                                (prompt  "Der Datenbestand \""dname"\" ist "
  273.                                  "vermutlich bereits in einer neueren "
  274.                                  "Version in dem angegebenen "
  275.                                  "Zielverzeichnis installiert.\nWollen sie "
  276.                                  "den Datenbestand trotzdem installieren?")
  277.                                (help    overwrite-help)
  278.                                (choices "Ja" "Nein")
  279.                              )
  280.                            )
  281.                            (if (= @user-level 0) (set docopy 0))
  282.                         )
  283.  
  284.                         (
  285.                            (set docopy
  286.                              (askbool
  287.                                (prompt  "Der Datenbestand \""dname"\" ist "
  288.                                  "vermutlich in einer älteren Version in "
  289.                                  "dem angegebenen Zielverzeichnis bereits "
  290.                                  "installiert.\nWollen sie den neuen "
  291.                                  "Datenbestand installieren?")
  292.                                (help    overwrite-help)
  293.                                (choices "Ja" "Nein")
  294.                              )
  295.                            )
  296.                            (if (= @user-level 0) (set docopy 1))
  297.                         )
  298.                      )
  299.                   )
  300.                )
  301.             )
  302.             (
  303.                (set docopy 1)
  304.             )
  305.          )
  306.  
  307.          (if (= docopy 1)
  308.             (
  309.                (if runpd
  310.                   (
  311.                      (copyfiles
  312.                         (source  (cat file fname))
  313.                         (dest    AFinder_dest)
  314.                         (files)
  315.                      )
  316.                      (set fname (cat fname ".#?"))
  317.                      (copyfiles
  318.                         (source  file)
  319.                         (dest    AFinder_dest)
  320.                         (pattern fname)
  321.                         (files)
  322.                      )
  323.                   )
  324.                   (
  325.                      (set fname (cat fname "#?"))
  326.                      (copyfiles
  327.                         (source  file)
  328.                         (dest    AFinder_dest)
  329.                         (pattern fname)
  330.                         (files)
  331.                      )
  332.                   )
  333.                )
  334.             )
  335.          )
  336.  
  337.          (set c (+ c 1))
  338.       )
  339.  
  340.       (set a (+ a 1))
  341.       (set b (+ b 1))
  342.  
  343.    )
  344.    (complete 100)
  345. )
  346.  
  347. (procedure getMags
  348.    (if (< @user-level 1) (set olduser (user 1)) )
  349.  
  350.    (if (exists pddisk (noreq))
  351.       (
  352.          (set runpd 1)
  353.          (set def 1)
  354.       )
  355.       (
  356.          (set def 0)
  357.       )
  358.    )
  359.  
  360.    (set answer2
  361.       (askoptions
  362.          (prompt  "Welche Datenbestände sollen installiert werden?")
  363.          (help    "Wählen Sie die Datenbestände aus, die sie installieren "
  364.                   "möchten.\nEs können dabei mehrere Datenbestände auf "
  365.                   "einmal ausgewählt werden.")
  366.          (if runpd
  367.             (choices "PD-Datenbestand" "Amiga-Magazin" "AmigaDOS" "AmigaPlus"
  368.                      "AmigaSpecial" "AmigaSpecial Extra" "Kickstart")
  369.             (choices "Amiga-Magazin" "AmigaDOS" "AmigaPlus" "AmigaSpecial"
  370.                      "AmigaSpecial Extra" "Kickstart")
  371.          )
  372.          (default def)
  373.       )
  374.    )
  375.  
  376.    (user olduser)
  377.  
  378.    (set a 0)
  379.    (set dbscount 0)
  380.    (while (< a dbsnum)
  381.       (if (BITAND 1 (shiftright answer2 a)) (set dbscount (+ dbscount 1)) )
  382.       (set a (+ a 1))
  383.    )
  384. )
  385.  
  386. (procedure chooseDir
  387.    (set ptext ("Bitte Verzeichnis für \n%s auswählen" ppart_1))
  388.  
  389.    (if (= @user-level 0) 
  390.       (if (= (exists AFinder_dest (noreq)) 0)
  391.          (user 1)
  392.       )
  393.    )
  394.  
  395.    (set AFinder_dest
  396.       (askdir
  397.          (prompt  ptext)
  398.          (help    "Sie müssen zunächst den Pfad des Verzeichnisses angeben, "
  399.                   "in das die Dateien kopiert werden sollen.\n"
  400.                   "Noch nicht vorhandene Verzeichnisse können von diesem "
  401.                   "Installationprogramm aus angelegt werden und "
  402.                   "mit einem Schubladen-Icon versehen werden.")
  403.          (default AFinder_dest)
  404.          (newpath)
  405.       )
  406.    )
  407.    (set @default-dest AFinder_dest)
  408.  
  409.    (user olduser)
  410.  
  411. )
  412.  
  413. (procedure getDisk
  414.    (set disk-help ("Die Diskette \"%s\" wird benötigt, damit alle Dateien des %s in das angegebene Zielverzeichnis kopiert werden können." source_disk ppart_2))
  415.  
  416.    (askdisk
  417.       (prompt  "Bitte legen sie die Diskette \""source_disk"\" in ein "
  418.                "Laufwerk.")
  419.       (help    disk-help)
  420.       (dest    source_disk)
  421.    )
  422. )
  423.  
  424. (if (< @user-level 1) (set olduser (user 1)) )
  425. (if (exists pddisk (noreq))
  426.    (set def 2)
  427.    (set def 0)
  428. )
  429. (set answer1
  430.    (askchoice
  431.       (prompt  "Welche Dateien sollen installiert werden?")
  432.       (help    "Sie können entweder das Hauptprogramm, einzelne "
  433.                "Datenbestände oder beides installieren.")
  434.       (choices "ARTIKELFinder" "Datenbestände" "Beides")
  435.       (default def)
  436.    )
  437. )
  438. (user olduser)
  439.  
  440. (select answer1
  441.    (
  442.       (copyMain)
  443.    )
  444.    (
  445.       (getMags)
  446.       (copyDBS)
  447.    )
  448.    (
  449.       (getMags)
  450.       (copyMain)
  451.       (copyDBS)
  452.    )
  453. )
  454.  
  455. (exit "Installationsvorgang beendet.")
  456.